package com.autonavi.abs.generator.core.property;

import com.autonavi.abs.common.constant.DateTimeConstant;
import com.autonavi.abs.common.util.DateTimeUtils;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @author tianquan.ld
 * @version V1.0
 * <p>Description: 系统配置</p>
 * @date 2020-08-10 17:25
 */
@Getter
@Setter
@Component
public class AppProperty {

    /**
     * 生成时间
     */
    private String dateTime = DateTimeUtils.formatDate(new Date(), DateTimeConstant.PATTERN_YYYY_MM_DD_HH_MM_SS);

    /**
     * 作者
     */
    @Value("${app.name}")
    private String appName;
    /**
     * 作者
     */
    @Value("${app.author}")
    private String author;
    /**
     * 生成路径
     */
    @Value("${app.targetDir}")
    private String targetDir;
    /**
     * 应用package
     */
    @Value("${app.basePackage}")
    private String basePackage;

    /**
     * 中间件列表
     */
    @Value("${app.middleware}")
    private String[] middlewareList;

    /**
     * druid
     */
    @Autowired
    private DruidProperty druid;

    /**
     * db参数
     */
    @Autowired
    private DbProperty db;

    /**
     * adb参数
     */
    @Autowired
    private AdbProperty adb;

    /**
     * tddl参数
     */
    @Autowired
    private TddlProperty tddl;

    /**
     * 把basePackage转换为目录形式
     *
     * @return
     */
    public String getPackageDir() {
        return basePackage.replaceAll("\\.", "\\/");
    }

}
